// SPDX-FileCopyrightText: 2023-2025 Sangfor Technologies Inc.
// SPDX-License-Identifier: Mulan PSL v2
package entity

type Action string

const (
	NbActionCreate      Action = "create"
	NbActionStart       Action = "start"
	NbActionStop        Action = "stop"
	NbActionDelete      Action = "delete"
	NbActionTimeoutStop Action = "timeout_stop"
)

// NotebookReportMsg notebook数据上报结构体
type NotebookReportMsg struct {
	ServiceName string `json:"service_name"` //服务名称
	EventType   string `json:"event_type"`   //事件类型
	EventName   string `json:"event_name"`   //事件名称
	Data        Data   `json:"data"`         //上报数据内容
}

type Data struct {
	EnvType      string `json:"env_type"`       //服务运行环境，管理集群，计算集群，测试集群，生产集群
	K8sNameSpace string `json:"k8s_name_space"` //notebook运行的k8s空间
	ProjectId    string `json:"project_id"`     //notebook项目id
	K8sPod       string `json:"k8s_pod"`        //notebook的pod名称
	UserName     string `json:"user_name"`      //用户名，操作者
	Action       Action `json:"action"`         //操作类型
	ReportDate   string `json:"report_date"`    //上报时间
}

// ReportDefaultValue 在结构体定义时为字段设置默认值
var ReportDefaultValue = NotebookReportMsg{
	ServiceName: "notebook",
	EventType:   "user_event",
	EventName:   "notebook_action",
}
